package fl.ass.service.service;

import cn.cmm.base.framework.exception.BaseException;
import fl.ass.facade.condition.AssDealCarQueryCondition;
import fl.ass.facade.dto.AssDealCarDTO;
import fl.ass.service.po.AssDealCar;
import cmm.mid.core.framework.page.Pager;
import cmm.service.core.framework.biz.IBaseBiz;
import fl.flow.facade.flow.dto.SysFlowSHDTO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Description: 处置-转优车信息表 服务层接口
 * @Description:持久层方法名称前缀：新增：insert* 删除：delete* 修改：update* 批量：batch* 查询对象：select* get* find* 查询集合：select*
 * @Description:业务层方法名称前缀：新增：add* 删除：remove* 修改：modify* 查询对象：select* get* 批量：batch* 查询集合：search*
 */
public interface IAssDealCarService extends IBaseBiz<AssDealCar, AssDealCarDTO, AssDealCarQueryCondition>{
	
	/**
	 * 分页查询处置-优车列表
	 * @param page
	 * @return
	 */
	public Pager findAssDealCarListByPage(Pager page);
	
	/**
	 * 保存转优车信息
	 * @param dto
	 */
	public Long saveAssDealCar(AssDealCarDTO dto);

	/**
	 * 转优车管理列表数据
	 * @param page
	 * @return
	 * @throws BaseException
	 */
    List<AssDealCar> searchUnionListByPage(Pager page) throws BaseException;

    /**
     * 自动结束超期转优车流程
     * @throws BaseException
     */
    void autoEndDealCarFlow() throws BaseException;

    /**
     * 批量更新流程历史表的流程状态
     * @param sysFlowSHDTOS
     * @return
     */
    int batchUpdateDealCarFlowAudStatus(List<SysFlowSHDTO> sysFlowSHDTOS) throws BaseException;

    /**
     * 字段赋值为空的时候的单独方法
     * @param entity
     * @return
     * @throws BaseException
     */
    int modify4Null(AssDealCarDTO entity)throws BaseException;

}
